<?php

namespace app\v1\controller;

use think\Controller;
use think\Request;

/**
 * 用户类
 */
class User extends Base
{
    /**
     * 用户登录
     */
    public function login()
    {
        $mobile = input('mobile');
        $pwd = input('pwd');
        return model('User')->Login($mobile, $pwd);
    }
    /**
     * 用户注册
     *
     * @return \think\Response
     */
    public function register()
    {
        // 所有需要创建的数据的key值便于下方循环时拿取前端数据
        $option = ['name' => '', 'mobile' => '', 'pwd' => ''];
        
        foreach ($option as $key => $value) {
            $option[$key] = input($key);
        }

        return model('User')->CreateUser( $option['name'], $option['mobile'], $option['pwd']);
    }

    /**
     * 获取用户数据
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id = 0)
    {
        // 判断用户ID是否传值 如不存在 判断用户是否登录
        if (empty($id)) {
            if (IsLogin() === false) {
                return Result(0, '请登陆后在尝试');
            }

            $id = $GLOBALS['user_id'];
        }

        return model('User')->ReadInfo($id);
    }

    /**
     * 修改用户资料
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function modify($id = 0)
    {
        $optionKey = ['name', 'sex', 'photo', 'birth_data'];
        $option = [];
        foreach ($optionKey as $value) {
            if (input("?$value")){
                $option[$value] = input($value);
            }
        }

        if (empty($id)) {
            if (IsLogin() === false) {
                return Result(0, '请登陆后在尝试');
            }

            $id = $GLOBALS['user_id'];
        }

        return model('User')->ModifyUser($id, $option);
    }

    /**
     * 修改密码
     */
    public function modify_pwd()
    {
        if (IsLogin() === false) {
            return Result(0, '请登陆后在尝试');
        }
        if (!input('?pwd') || empty(input('pwd')))
        {
            return Result(0, '请填写密码');
        }

        $pwd = input('pwd');
        return model('User')->ModifyUser($GLOBALS['user_id'], ['pwd' => md5($pwd)]);
    }

    /**
     * 获取用户订单数目
     */
    public function reserve_num()
    {
        if (IsLogin() === false) {
            return Result(0, '请登陆后在尝试');
        }

        return model('User')->GetReserveNum($GLOBALS['user_id']);
    }

    /**
     * 根据指定条件获取用户的所有订单
     * state : 0 => 已完成订单 1 => 成功预定顶单 2 => 成功入住订单
     */
    public function reserve_list($page = 0)
    {
        if (IsLogin() === false) {
            return Result(0, '请登陆后在尝试');
        }

        $state = 0;

        input('?state')? $state = input('state') : '';

        return model('User')->GetReserveList($page, $GLOBALS['user_id'], $state);
    }
}
